/**
 * 
 */
package com.avsa.pedido.model.dao.jpa;

import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import org.apache.commons.beanutils.BeanUtils;

import com.avsa.pedido.model.DetalleDePedido;
import com.avsa.pedido.model.*;
import com.avsa.pedido.model.dao.DetalleDePedidoDAO;




public class JPADetalleDePedidoDAO implements DetalleDePedidoDAO{

	private EntityManager em;
	
	
	public JPADetalleDePedidoDAO(EntityManager em) {
		this.em=em;
	}


	public DetalleDePedido findById(int id1, int id2) {
		Query query=em.createQuery("Select o From DetalleDePedido o where o.pedido=?1 and o.producto=?2");
		Producto prod=em.find(Producto.class,id2);
		Pedido ped=em.find(Pedido.class, id1);
		query.setParameter(1, ped);
		query.setParameter(2, prod);
		System.out.println("RETORNA: "+((DetalleDePedido)query.getSingleResult()).getPesoPromedio());
		return (DetalleDePedido)query.getSingleResult();
		
	}

	
	public List<DetalleDePedido> find(Pedido o) {
		List<DetalleDePedido> listaDetalle=new Vector<DetalleDePedido>();
		
		try{
			em.getTransaction().begin();
			String query="SELECT a FROM DetalleDePedido a WHERE a.pedido = :codigo";
			Query emquery=em.createQuery(query);
			emquery.setParameter("codigo",o);
			List<DetalleDePedido> listaEntidad=emquery.getResultList();
			Iterator it=listaEntidad.iterator();
			while(it.hasNext()){
				DetalleDePedido entidad=(DetalleDePedido)it.next();
				listaDetalle.add(entidad);
			}
			
		}finally {
			em.close();
		}
		
		return listaDetalle;
		
	}
	
	
}